/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package com.dp1.pucp.Compras.Controlador;

import com.dp1.pucp.Compras.DAO.ProveedorDAO;
import com.dp1.pucp.Compras.VIsta.AgregarProdProvGUI;
import com.dp1.pucp.Compras.VIsta.ProdxProvGUI;
import com.dp1.pucp.Logistica.Controlador.MantTipoProductoControlador;

import com.dp1.pucp.Logistica.Vista.BuscarMateriaPrimaGUI;
import com.dp1.pucp.Modelo.Clases.Costoinsumos;
import com.dp1.pucp.Modelo.Clases.Tipoproducto;
import com.dp1.pucp.Modelo.Clases.Moneda;
import com.dp1.pucp.Modelo.Clases.Proveedor;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.ArrayList;

/**
 *
 * @author ubuntu64
 */
public class ProdxProvControlador {
    private ProveedorDAO m;
    private ProdxProvGUI AsignarProdProvView;
    private Costoinsumos costo;
    private ProdxProvControlador AsignarProdProvControlador;
    private MantTipoProductoControlador mantTipoProductoControlador;
    private Proveedor proveedor; // aqui esta el proveedor
    private Tipoproducto tipoProducto;
    
    public ArrayList<Costoinsumos> listacostos = new ArrayList<Costoinsumos>();
    
     public ProdxProvControlador(ProveedorDAO dao, ProdxProvGUI view, MantTipoProductoControlador buc, Proveedor prov,Tipoproducto tipoproducto,int idtipoproductoMP, int flag){
        m = dao;
        AsignarProdProvView = view;
        mantTipoProductoControlador = buc;
        proveedor = prov;
        tipoProducto = tipoproducto;
        listacostos = m.listarCostos(proveedor);//esto me saca la lista de costos de este prov
        AsignarProdProvView.listaCostos(listacostos); // muestra la lista de costos
        
        AsignarProdProvView.addAgregarProdListener(new agregarProdListener(this));
        AsignarProdProvView.addCancelarListener(new cancelarListener());
    }
     
     class cancelarListener implements ActionListener{
        @Override
        public void actionPerformed(ActionEvent e) {
            AsignarProdProvView.dispose();
        }        
    } 
     
//     public void guardarCostos(ArrayList <Costoinsumos> listaCostosAGuardar){
//         
//         Moneda moneda = new Moneda();
//         moneda = m.listarMoneda();
//          for (int i=0; i<listaCostosAGuardar.size(); i++){
//              listaCostosAGuardar.get(i).setProveedor(proveedor);
//              
//              listaCostosAGuardar.get(i).setMoneda(moneda);
//              m.guardarCosto(listaCostosAGuardar.get(i));
//          }
//     }
     
     class agregarProdListener implements ActionListener{
        
        private ProdxProvControlador controlador;
        public agregarProdListener(ProdxProvControlador controlador){
            this.controlador = controlador;
        }
              
        @Override
        public void actionPerformed(ActionEvent e) {
            
            AgregarProdProvGUI vista = new AgregarProdProvGUI(AsignarProdProvView.getPadre(), true);
            AgregarProdProvControlador c = new AgregarProdProvControlador( vista, m, controlador, proveedor);
            vista.setVisible(true);
            

        }      
    }
     
     public void listaCostos(ArrayList<Costoinsumos> listaCostosAGuardar){
         AsignarProdProvView.listaCostos(listaCostosAGuardar);
     }
    
}
